1. Field of the Invention
The invention relates to systems and methods for determining the amount of time required for execution of software programs, modules, routines and the like.
2. Description of the Prior Art
As electronic computers and software utilized therewith become increasingly complex and costly, it has become desirable to determine the execution time of individual software modules in order to improve the efficiency and to reduce the cost of developing software systems. The ability to determine the execution time of particular software modules allows more efficient utilization and design of an overall computing system and ultimately provides the user with maximum amount of computation per dollar of cost. One expensive device which is capable of providing an indication of time required for execution of certain groups of software instructions is the Hewlett Packard 1611A data analyzer.
However, that device has the capability of starting a timer upon the occurrence of a particular first memory address and continuing timing until a specified second address is executed. The device has the serious disadvantage that only the total time elapsing between execution of the first address and execution of the second address is measured. That total time may include time required for fetching and executing subroutines which service slow input/output devices, thereby completely obscuring the amount of processor time required to execute a particular software module. Yet it often is the processor time required for execution of a program which is desired to be known.
Another system for measuring software execution time is disclosed in U.S. Pat. No. 3,771,144. However, the system disclosed in U.S. Pat. No. 3,771,144 also has the shortcoming that execution times measured by it may include execution times for subroutines and times required for input and output operations.
Accordingly, it is an object of the invention to provide a system and method for measuring or indicating the amount of time required for execution of particular software modules, exclusive of the time required to execute subroutines.
The system disclosed in U.S. Pat. No. 3,771,144 discloses a complex timing system (for timing intervals) embedded within a software module to be executed, wherein timing hardware specifically dedicated to the timing function is built within the computer system and is actuated with certain conditions met. However, the system disclosed in U.S. Pat. No. 3,771,144 is incapable of being utilized as a software development tool which can be easily and conveniently connected to any operating computer to measure or indicate execution time for a particular software module being executed by the computer without modifying either the hardware or the software of the computer.
Accordingly, it is another object of the invention to provide a system and method for measuring or indicating execution time for software modules being executed by a computer without modifying either the software or hardware of the computer system.
It is another object of the invention to provide a simple, low cost system and method for measuring or indicating execution times of software modules being executed by a computer.